package com.ynet.middleground.user.service;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.user.bean.*;
import com.ynet.middleground.user.dto.InPortRoleDto;
import com.ynet.middleground.user.dto.OrganRoleRelationshipDto;

import javax.validation.Valid;
import java.util.List;

/**
 * @program: 2019-10-12_userCenter
 * @description: 角色管理服务
 * @author: DaiGaoLe
 * @create: 2019-10-28 17:03
 **/
public interface RoleManagementService {
    /**
     * @program: 2019-10-12_userCenter
     * @description: 添加角色
     * @author: DaiGaoLe
     * @create: 2019-10-23 15:25
     **/
    public ServiceResult<Integer> addRoleInfo(@Valid AddRoleInfoReq requestObject);

    /**
     * @program: 2019-10-12_userCenter
     * @description: 查看角色信息
     * @author: DaiGaoLe
     * @create: 2019-10-23 15:25
     **/
    public ServiceResult<List<InPortRoleDto>> queryRoleInfo(@Valid QueryRoleInfoReq requestObject);


    /**
     * @program: 2019-10-12_userCenter
     * @description:  修改角色
     * @author: DaiGaoLe
     * @create: 2019-10-23 15:25
     **/
    public ServiceResult<String> changeRole(@Valid ChangeRoleReq requestObject);


    /**
     * @program: 2019-10-12_userCenter
     * @description:  删除角色
     * @author: DaiGaoLe
     * @create: 2019-10-23 15:25
     **/
    public ServiceResult<String> deleteRole(ChangeRoleReq requestObject);


    /**
     * @program: 2019-10-12_userCenter
     * @description:  员工机构、部门、角色关系维护
     * @author: DaiGaoLe
     * @create: 2019-10-23 15:25
     **/
    public ServiceResult<String> addOrganRoleRelationship(AddOrganRoleRelationshipReq requestObject);

    /**
     * @program: 2019-10-12_userCenter
     * @description:  员工机构、部门、角色关系查询
     * @author: DaiGaoLe
     * @create: 2019-10-23 15:25
     **/
    public ServiceResult<List<OrganRoleRelationshipDto>> queryOrganRoleRelationship(QueryOrganRoleRelationshipReq requestObject);


    /**
     * @program: 2019-10-12_userCenter
     * @description:  员工机构、部门、角色关系查询不分页
     * @author: DaiGaoLe
     * @create: 2019-10-23 15:25
     **/
    public ServiceResult<List<OrganRoleRelationshipDto>> queryOrganRoleRelationshipNoPage(QueryOrganRoleRelationReq requestObject);


}
